<?php

class Roteiro_model extends CI_Model {

    public function __construct() {
        parent::__construct();
        $this->load->config('parametros');
    }

    public function consultar(){
       $this->db->select(
            $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.id, '.
            $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.data, '.
            $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.nome, '.
            $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.versao, '.
            $this->config->item('dbCliente') . $this->config->item('tblDisciplinasInfo') . '.nome as disciplina, '.
            $this->config->item('dbCliente') . $this->config->item('tblPessoa') . '.nome autor, ' .
            $this->config->item('dbCliente') . $this->config->item('tblRoteirosArquivos') . '.arquivos_id ');

        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblDisciplinas'), $this->config->item('dbCliente') . $this->config->item('tblDisciplinas') . '.id = ' . $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.disciplinas_id');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblDisciplinasInfo'), $this->config->item('dbCliente') . $this->config->item('tblDisciplinasInfo') . '.disciplinas_id = ' . $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.disciplinas_id');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblPessoa'), $this->config->item('dbCliente') . $this->config->item('tblPessoa') . '.id = ' . $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.pessoa_id');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas'), $this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . '.id = ' . $this->config->item('dbCliente') . $this->config->item('tblDisciplinasInfo') . '.local_idiomas_id');
        $this->db->join($this->config->item('dbCliente') . $this->config->item('tblRoteirosArquivos'), $this->config->item('dbCliente') . $this->config->item('tblRoteirosArquivos') . '.roteiros_id = ' . $this->config->item('dbCliente') . $this->config->item('tblRoteiros') . '.id');
        
        $this->db->where($this->config->item('dbCliente') . $this->config->item('tblLocalIdiomas') . '.codigo', $this->config->item('language'));

        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblRoteiros'));

        return $query->result();
    }
    
     public function cadastrar($_dados = array()) {
        //echo var_dump($_dados);
        $this->db->set($_dados);
        $this->db->insert($this->config->item('dbCliente') . $this->config->item('tblRoteiros'));
        if ($this->db->affected_rows() > 0) {
            return $this->db->insert_id();
        } else {
            return NULL;
        }
    }
    public function alterar($_id, $_dados = array()) {
        $this->db->where('id', $_id);
        $this->db->set($_dados);
        $this->db->update($this->config->item('dbCliente') . $this->config->item('tblRoteiros'));
        if ($this->db->affected_rows() > 0) {
            return $_id;
        } else {
            return NULL;
        }
    }
    
    public function get_roteiro_tipos($_id) {
       $this->db->where('id', $_id);
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblRoteirosTipo'));

         if ($query->num_rows() > 0) {
            return $query->row();
        } else {
            return NULL;
        }
    }
    
    public function get_roteiro_tipos_combo() {
       $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblRoteirosTipo'));

         if ($query->num_rows() > 0) {
            return $this->_combo_categorias_option($query->result());
        } else {
            return $this->_combo_categorias_option();
        }
    }
    
     private function _combo_categorias_option($dados = array(), $option = array()) {
        $_new_array = array();
        $_new_array[''] = 'Selecionar';
        if (count($dados) > 0) {
            foreach ($dados as $v) {
                $option[$v->id][$v->id] = $v->nome;
            }


            if (count($option) > 0) {
                foreach ($option as $value) {
                    foreach ($value as $ke => $va) {
                        $_new_array[$ke] = $va;
                    }
                }
            }
        }
        return $_new_array;
    }

     public function consultarReferencia($_referencia) {
        $this->db->where('referencia', $_referencia);
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblRoteiros'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }

    public function consultarReferenciaLike($_referencia) {
        $this->db->like('referencia', $_referencia, 'after');
        $query = $this->db->get($this->config->item('dbCliente') . $this->config->item('tblRoteiros'));
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return NULL;
        }
    }
    public function deletar($_id){
        $this->db->where('id', $_id);
        return $this->db->delete($this->config->item('dbCliente') . $this->config->item('tblRoteiros'));
    }
    
    public function deletarRoteiroArquivo($_id){
        $this->db->where('id', $_id);
        if($this->db->delete($this->config->item('dbCliente') . $this->config->item('tblRoteirosArquivos'))){
            return true;
        }else{
            return false;
        }
    }
}